home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIP Haziran 2001.iso / prog / share / 04 / setup.exe / MM6.Cab / F3731_CSScriptLib.js.F6A680DD_F3FB_4CF3_BABB_0D0F06E630F5 < prev    next >
Text File  |  2000-07-27  |  11KB  |  279 lines

  1. // -- Adobe GoLive JavaScript Library// -- Global Functionsfunction CSScriptInit() {if(typeof(skipPage) != "undefined") { if(skipPage) return; }
  2. idxArray = new Array;
  3. for(var i=0;i<CSInit.length;i++)
  4.     idxArray[i] = i;
  5. CSAction2(CSInit, idxArray);
  6. }CSInit = new Array;
  7. CSExit = new Array;
  8. CSStopExecution = false;
  9. function CSAction(array) { 
  10.     return CSAction2(CSAct, array);
  11. }
  12. function CSAction2(fct, array) { 
  13.     var result;
  14.     for (var i=0;i<array.length;i++) {
  15.         if(CSStopExecution) return false; 
  16.         var actArray = fct[array[i]];
  17.         if(actArray == null) return false; 
  18.         var tempArray = new Array;
  19.         for(var j=1;j<actArray.length;j++) {
  20.             if((actArray[j] != null) && (typeof(actArray[j]) == "object") && (actArray[j].length == 2)) {
  21.                 if(actArray[j][0] == "VAR") {
  22.                     tempArray[j] = CSStateArray[actArray[j][1]];
  23.                 }
  24.                 else {
  25.                     if(actArray[j][0] == "ACT") {
  26.                         tempArray[j] = CSAction(new Array(new String(actArray[j][1])));
  27.                     }
  28.                 else
  29.                     tempArray[j] = actArray[j];
  30.                 }
  31.             }
  32.             else
  33.                 tempArray[j] = actArray[j];
  34.         }            
  35.         result = actArray[0](tempArray);
  36.     }
  37.     return result;
  38. }
  39. CSAct = new Object;
  40. function CSClickReturn () {
  41.     var bAgent = window.navigator.userAgent; 
  42.     var bAppName = window.navigator.appName;
  43.     if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))
  44.         return true; // dont follow link
  45.     else return false; // dont follow link
  46. }
  47. CSLoopIsRunning = false; CSFctArray = new Array; CSTimeoutID = null;
  48. function CSLoop() {    
  49.     CSLoopIsRunning = false;
  50.     for (i=0;i<CSFctArray.length;i++) {
  51.         var curFct = CSFctArray[i];
  52.         if (curFct)    {
  53.             if (curFct.DoFunction(curFct)) { CSLoopIsRunning = true; curFct.counter++; }
  54.             else CSFctArray[i] = 0;
  55.         }
  56.     }
  57.     if (CSLoopIsRunning) CSTimeoutID = setTimeout("CSLoop()", 1);
  58. }
  59. function CSStartFunction(fct,data) {
  60.     if (!CSLoopIsRunning) { CSFctArray = 0; CSFctArray = new Array; }
  61.     var fctInfo = new Object;
  62.     fctInfo.DoFunction = fct; fctInfo.counter = 0; fctInfo.data = data;
  63.     CSFctArray[CSFctArray.length] = fctInfo; 
  64.     if (!CSLoopIsRunning) CSLoop();
  65. }
  66. function CSStopFunction(sceneName) {
  67.     var i;
  68.     for (i=0;i<CSFctArray.length;i++) {
  69.         var curFct = CSFctArray[i];
  70.         if (curFct){ if (curFct.data.name == sceneName){ CSFctArray[i] = 0; return; } }
  71.     }
  72. }
  73. function CSStopComplete() {
  74.     if (CSTimeoutID == null) return;
  75.     clearTimeout (CSTimeoutID); CSLoopIsRunning = false; CSTimeoutID = null;
  76. }
  77. function CSSetStylePos(s,d,p) { if (IsIE()) { if (d == 0) CSIEStyl(s).posLeft = p; else CSIEStyl(s).posTop = p; }
  78.     else { if (d == 0) CSNSStyl(s).left = p; else CSNSStyl(s).top = p; } }
  79. function CSGetStylePos(s,d) { if (IsIE()) { if (d == 0) return CSIEStyl(s).posLeft; else return CSIEStyl(s).posTop; }
  80.     else { if (d == 0) return CSNSStyl(s).left; else return CSNSStyl(s).top; }}
  81. function CSSetStyleVis(s,v) { if (IsIE()) CSIEStyl(s).visibility = (v == 0) ? "hidden" : "visible";
  82.     else CSNSStyl(s).visibility = (v == 0) ? 'hide' : 'show'; }
  83. function CSGetStyleVis(s) { if (IsIE()) return (CSIEStyl(s).visibility == "hidden") ? 0 : 1;
  84.     else return (CSNSStyl(s).visibility == 'hide') ? 0 : 1;}
  85. function CSSetStyleDepth(style,depth) { if (IsIE()) CSIEStyl(style).zIndex = depth; else CSNSStyl(style).zIndex = depth;}
  86. function CSGetStyleDepth(style) { if (IsIE()) return (CSIEStyl(style).zIndex); else return (CSNSStyl(style).zIndex); }
  87. CSSeqArray = new Array;
  88. function CSSeqActionFct(seq,loopCount,continueLoop) {
  89.     if ((seq.loop < 2) || ((loopCount % 2) != 0)) {
  90.         for (var i=0;i<seq.actionCount;i++) {
  91.             if (seq.actions[3*i + 1] <= seq.frame) {
  92.                 if ((loopCount > 1) && (seq.actions[3*i + 1] < seq.start)) continue;
  93.                 if (seq.actions[3*i + 2] < loopCount) {
  94.                     seq.actions[3*i + 2] = loopCount; CSLoopIsRunning = true;
  95.                     CSAction(new Array(seq.actions[3*i + 0])); continueLoop = true;
  96.                 }
  97.             } else { continueLoop = true; break; }
  98.         }
  99.     } else {
  100.         for (var i=seq.actionCount-1;i>=0;i--) {
  101.             if (seq.actions[3*i + 1] > seq.frame) {
  102.                 if (seq.actions[3*i + 1] > seq.end) continue;
  103.                 if (seq.actions[3*i + 2] < loopCount) {
  104.                     seq.actions[3*i + 2] = loopCount; CSLoopIsRunning = true;
  105.                     CSAction(new Array(seq.actions[3*i + 0])); continueLoop = true;
  106.                 }
  107.             } else { continueLoop = true; break; }
  108.         }
  109.     }
  110.     return continueLoop;
  111. }        
  112. function CSSeqFunction(fctInfo)
  113. {
  114.     var seq = fctInfo.data; var oldFrame = seq.frame;
  115.     var newTicks = (new Date()).getTime();
  116.     seq.frame = Math.round((seq.fps * (newTicks - seq.startTicks)/1000.0) - 0.5);
  117.     var continueLoop  = false; var loopCount = 1;
  118.     
  119.     if (seq.loop > 0) {
  120.         continueLoop = true;
  121.         if (seq.loop == 1) {
  122.             var iv = (seq.end - seq.start);
  123.             var f = Math.round(((seq.frame - seq.start) / iv) - 0.5);
  124.             if (f < 0) f = 0;
  125.             loopCount = f+1;
  126.             seq.frame = seq.start + ((seq.frame - seq.start) % (seq.end - seq.start));
  127.         } else {
  128.             var iv = (seq.end - seq.start);
  129.             var f = Math.round(((seq.frame - seq.start) / iv) - 0.5);
  130.             if (f < 0) f = 0;
  131.             loopCount = f+1;
  132.             f = (seq.frame - seq.start) % (2 * iv);
  133.             if (f > iv) f = 2*iv - f;
  134.             seq.frame = seq.start + f;
  135.         }
  136.     }
  137.     continueLoop = CSSeqActionFct(seq,loopCount,continueLoop);
  138.     for (var i=0;i<seq.tracks.length;i++) {
  139.         var track = seq.tracks[i]; var frameCount = 0; var lastCount = 0; var partCount = 0;
  140.         var partIdx = track.parts.ticks.length;
  141.         for (var k=0;k<track.parts.ticks.length;k++) {
  142.             frameCount += track.parts.ticks[k];
  143.             if (frameCount > seq.frame) { partIdx = k; partCount = seq.frame - lastCount; break; }
  144.             lastCount = frameCount;
  145.         }
  146.         if (partIdx < track.parts.ticks.length) {
  147.             var type=track.parts.moveType[partIdx];
  148.             if(type==1) CSSetLinearPos (track, partIdx, partCount);
  149.             else if(type==2) CSSetCurvePos (track, partIdx, partCount);
  150.             else if(type==3) if (oldFrame != seq.frame) CSSetRandomPos (track, partIdx, partCount);
  151.                              else { x = CSGetStylePos(track.layer,0); y = CSGetStylePos(track.layer,1); }
  152.             CSSetStyleVis(track.layer,track.parts.visibilities[partIdx]);
  153.             CSSetStyleDepth(track.layer,track.parts.depths[partIdx]);
  154.             continueLoop = true;
  155.         } else {
  156.             var partIdx = track.parts.moveType.length-1;
  157.             var posArray = track.parts.positions;
  158.             var x = posArray[partIdx * 6 + 0]; var y = posArray[partIdx * 6 + 1];
  159.             CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
  160.             CSSetStyleVis(track.layer,track.parts.visibilities[partIdx]);
  161.             CSSetStyleDepth(track.layer,track.parts.depths[partIdx]);
  162.         }
  163.     }
  164.     return continueLoop;
  165. }
  166. function CSSetLinearPos (track, partIdx, partCount) {
  167.     var curTicks = track.parts.ticks[partIdx];
  168.     var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
  169.     var posArray = track.parts.positions;
  170.     var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
  171.     var x1,x2,y1,y2;
  172.     var factor = partCount/curTicks;
  173.     x1 = x; y1 = y;
  174.     x2 = posArray[pIdx2 + 0]; y2 = posArray[pIdx2 + 1];
  175.     x = x1 * (1-factor) + x2 * factor; y = y1 * (1-factor) + y2 * factor;
  176.     CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
  177. }
  178. function CSSetCurvePos (track, partIdx, partCount) {
  179.     var curTicks = track.parts.ticks[partIdx];
  180.     var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
  181.     var posArray = track.parts.positions;
  182.     var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
  183.     var x1,x2,x3,x4,y1,y2,y3,y4;
  184.     var factor = partCount/curTicks;
  185.     var t = factor; var u = t * t; var v = u * t;
  186.     var val1 = 3*(u-t) - v + 1; var val2 = 3*(v+t - 2*u); var val3 = 3*(u-v); var val4 = v;
  187.     x1 = x; y1 = y; x2 = posArray[pIdx1 + 2]; y2 = posArray[pIdx1 + 3];
  188.     x3 = posArray[pIdx1 + 4]; y3 = posArray[pIdx1 + 5];
  189.     x4 = posArray[pIdx2 + 0]; y4 = posArray[pIdx2 + 1];
  190.     x = x1 * val1 + x2 * val2 + x3 * val3 + x4 * val4;
  191.     y = y1 * val1 + y2 * val2 + y3 * val3 + y4 * val4;
  192.     CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
  193. }
  194. function CSSetRandomPos (track, partIdx, partCount) {
  195.     var curTicks = track.parts.ticks[partIdx];
  196.     var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
  197.     var posArray = track.parts.positions;
  198.     var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
  199.     var x1,x2,y1,y2;
  200.     var factor = partCount/curTicks;
  201.     x1 = x; y1 = y;
  202.     x2 = posArray[pIdx2 + 0]; y2 = posArray[pIdx2 + 1];
  203.     var factorx = Math.random(); var factory = Math.random();
  204.     x = x1 * (1-factorx) + x2 * factorx; y = y1 * (1-factory) + y2 * factory;
  205.     CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
  206. }
  207. function CSStartSeq(name) {
  208.     var seq = CSGetScene(name); var date = new Date()
  209.     seq.startTicks = date.getTime()
  210.     for (var i=0;i<seq.actionCount;i++) seq.actions[3*i+2] = 0;
  211.     CSStartFunction(CSSeqFunction,seq);
  212. }
  213. function CSSceneObj (name,fps,loop,start,end,frame,sTicks,numAct,acts,tracks) {
  214.     this.name=name;this.fps=fps;this.loop=loop;this.start=start;this.end=end;
  215.     this.frame=frame;this.startTicks=sTicks;this.actionCount=numAct;
  216.     this.actions=acts;this.tracks=tracks;
  217. }
  218. function CSTrackObj (name,partIdx,partCount,parts) {
  219.     this.layer=name;this.partIdx=partIdx;this.partCount=partCount;this.parts=parts;
  220. }
  221. function CSPartObj (ticks,pos,depths,vis,moveType) {
  222.     this.ticks=ticks;this.positions=pos;this.depths=depths;this.visibilities=vis;
  223.     this.moveType=moveType;
  224. }
  225. function CSGetScene (name) {
  226.     for (i=0;i<CSSeqArray.length;i++) { var seq = CSSeqArray[i]; if (seq.name==name) return seq; }
  227.     return 0;
  228. }
  229.  
  230. function CSAutoStartScene(action) { CSStartSeq (action[1]); }
  231.  
  232. CSAg = window.navigator.userAgent; CSBVers = parseInt(CSAg.charAt(CSAg.indexOf("/")+1),10);
  233. function IsIE() { return CSAg.indexOf("MSIE") > 0;}
  234. function CSIEStyl(s) { return document.all.tags("div")[s].style; }
  235. function CSNSStyl(s) { return CSFindElement(s,0); }
  236. function CSFindElement(n,ly) { if (CSBVers < 4) return document[n];
  237.     var curDoc = ly ? ly.document : document; var elem = curDoc[n];
  238.     if (!elem) { for (var i=0;i<curDoc.layers.length;i++) {
  239.         elem = CSFindElement(n,curDoc.layers[i]); if (elem) return elem; }}
  240.     return elem;
  241. }
  242. // -- Action Functions
  243. function CSOpenWindow(action) {
  244.     var wf = "";    
  245.     wf = wf + "width=" + action[3];
  246.     wf = wf + ",height=" + action[4];
  247.     wf = wf + ",resizable=" + (action[5] ? "yes" : "no");
  248.     wf = wf + ",scrollbars=" + (action[6] ? "yes" : "no");
  249.     wf = wf + ",menubar=" + (action[7] ? "yes" : "no");
  250.     wf = wf + ",toolbar=" + (action[8] ? "yes" : "no");
  251.     wf = wf + ",directories=" + (action[9] ? "yes" : "no");
  252.     wf = wf + ",location=" + (action[10] ? "yes" : "no");
  253.     wf = wf + ",status=" + (action[11] ? "yes" : "no");        
  254.     window.open(action[1],action[2],wf);
  255. }
  256. function CSFixFct() {
  257.     var d = document; var w = window;
  258.     if (d.cs.csFix.w != w.innerWidth || d.cs.csFix.h != w.innerHeight) {
  259.         d.location = d.location; }
  260. }
  261. function CSNSFix(action) { 
  262.     var d = document; var w = window;
  263.     if ((navigator.appName == 'Netscape') && (parseInt(navigator.appVersion) == 4)) {
  264.         if (typeof d.cs == 'undefined') { 
  265.             d.cs = new Object;
  266.             d.cs.csFix = new Object; 
  267.         } else if (CSIsFrame (w) == true) CSFixFct();
  268.         d.cs.csFix.w = w.innerWidth;
  269.         d.cs.csFix.h = w.innerHeight; 
  270.         window.onresize = CSFixFct;
  271.       }
  272. }
  273. function CSIsFrame (window) {
  274.     var rootWindow = window.parent;
  275.     if (rootWindow == 'undefined') return false;
  276.     for (i = 0; i < rootWindow.frames.length; i++)
  277.         if (window == rootWindow.frames[i]) return true;
  278.     return false;
  279. }// EOF